﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace XamlCleaner.Core.Pharser
{
    /// <summary>
    /// Interface for XamlPharser classes
    /// </summary>
    public interface IXamlPharser
    {
        /// <summary>
        /// Get the original documet.
        /// </summary>
        XmlDocument OriginalDocument { get; }

        /// <summary>
        /// Pharse a xmlDocument
        /// </summary>
        /// <param name="documet">original xaml</param>
        /// <returns>Pharsed XmlDocument.</returns>
        XmlDocument Pharse();

        /// <summary>
        /// Raised before start to replacing hole list.      
        /// </summary>
        event ReplacingDuplicatedNameSpaceListEventHandler ReplacingDuplicatedNameSpaceList;

        /// <summary>
        /// Raised after hole list was replaced.      
        /// </summary>
        event ReplacedDuplicatedNameSpaceListEventHandler ReplacedDuplicatedNameSpaceList;

        /// <summary>
        /// Raised before each NameSpace start to replacing.
        /// </summary>
        event ReplacingDuplicatedNameSpaceEventHandler ReplacingDuplicatedNameSpace;

        /// <summary>
        /// Reaise after each NameSpace was replaced.
        /// </summary>
        event ReplacedDuplicatedNameSpaceEventHandler ReplacedDuplicatedNameSpace;
    }
}
